Device for processing data packets without use of a microprocessor and a memory

ABSTRACT

A method of processing data packets includes receiving a plurality of the data packets at a selected node. Pertinent information in the data packets is extracted. The pertinent information is pertinent to the selected node. A plurality of response data packets are generated based on the pertinent information. The extracting and generating steps are performed without use of a microprocessor.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to network communication, and, moreparticularly, to a packet processing node for network communication.

2. Description of the Related Art

In many communication systems, any transmission from one node is sent toa plurality of connected nodes. In such broadcast systems, theinformation may only be relevant to a single receiver, but all nodesmust process the transmission to determine its intent. Data on suchnetworks are usually broken into pieces known as packets. A packet isformed of consecutive bytes that may be marked by leading and/ortrailing delimiters. Protocols by which nodes communicate usually dividea packet into the protocol-relevant information (the header) and thedata relevant to the receiving node (payload).

It is known for the protocols to be “layered” so that the payload areaof a lower protocol contains a packet of the next higher layer protocol.Most communication environments require that addressing information becontained at fixed locations (in the first few bytes) of the lowestlayer protocol header so that hardware can help discard unwanted packetsby simple filtering.

There are many examples of commercially available network devices thatperform such filtering. Practically all Ethernet media accesscontrollers (MAC's), for instance, provide for filtering based on anexact match of the first six bytes of a packet header to a programmedvalue (the network address). This greatly reduces the load of thegeneral-purpose central processing unit (CPU). However, many networkframes that are addressed to the node either distinctly or by a sharedaddress are still not relevant to a particular node. The receivingequipment may be required to look at an entire packet to determine itsrelevance. Additional cost is inherent in networked systems becausememory is required to store the entire packet while the processingelements perform the analysis.

Most of the existing patents relating to packet filtering are a resultof the very competitive commercial network switch and router market.Routers must sort received frames into subsets based on different bytefields within a packet. To achieve high throughput, specialized hardwarecan be used to perform this sorting. In all known cases, an assumptionis made that a CPU is present and only assists the microprocessor inperforming its task. A problem is that a microprocessor adds significantcost to the product.

What is needed in the art is a device for network communication thatdoes not require a microprocessor.

SUMMARY OF THE INVENTION

The present invention provides a device for network communication usingspecialized hardware that eliminates the need for a microprocessor inthe system. The device processes information in a packetizedcommunication system. The result is a minimal-cost packet-processingnode.

A hardware apparatus extracts only pertinent information from receivedpackets and can generate response packets based on the same information.This processing is done in real time and without the use of anadditional data processing system that might include a microprocessor orstorage memory.

The invention comprises, in one form thereof, a method of processingdata packets. A plurality of the data packets are received at a selectednode. Pertinent information in the data packets is extracted. Thepertinent information is pertinent to the selected node. A plurality ofresponse data packets are generated based on the pertinent information.The extracting and generating steps are performed without use of amicroprocessor.

The invention comprises, in another form thereof, a data packetcommunication system including a peripheral device and a filter deviceconnected to the peripheral device. The filter device receives aplurality of data packets and identifies pertinent information in thedata packets. The pertinent information is pertinent to the peripheraldevice.

An advantage of the present invention is that network packet processingis performed without the need for a microprocessor.

Another advantage is that the packet filter hardware not only identifiespackets relevant to the receiving node, but also extracts any pertinentinformation contained in the data stream.

Yet another advantage is that signals are created by the filter hardwareto indicate that a response packet should be generated using theextracted information.

A further advantage is that the packet filter hardware can be replicatedand used in parallel to provide different protocols within the samenetwork node.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-mentioned and other features and advantages of this invention,and the manner of attaining them, will become more apparent and theinvention will be better understood by reference to the followingdescription of embodiments of the invention taken in conjunction withthe accompanying drawings, wherein:

FIG. 1 is a block diagram of one embodiment of a packet communicationdevice of the present invention connected to a peripheral device and apacketized data network;

FIG. 2 is a block diagram of one embodiment of a data packet processedby the packet communication device of FIG. 1;

FIG. 3 is a block diagram of the hardware filter of FIG. 1;

FIG. 4 is a schematic diagram of the signaling logic of FIG. 3; and

FIG. 5 is a block diagram of the packet generator of FIG. 1.

Corresponding reference characters indicate corresponding partsthroughout the several views. The exemplifications set out hereinillustrate one preferred embodiment of the invention, in one form, andsuch exemplifications are not to be construed as limiting the scope ofthe invention in any manner.

DETAILED DESCRIPTION OF THE INVENTION

Referring now to the drawings and particularly to FIG. 1, there is shownone embodiment of a packet communication device 10 of the presentinvention. Device 10 includes neither a microprocessor nor storagememory. That is, device 10 is microprocessorless and memoryless. Device10 includes a hardware filter 12 and a packet generator 14 connected toa packet data network 16. Hardware filter 12 and packet generator 14 arealso connected via an interface 18 to a payload data consumer in theform of a peripheral device 20. An optional protocol state machine 22may be necessary to convert filter indications into transmit requests topacket generator 14. Network 16 may be any of the common serial networkarchitectures (such as Ethernet or Token Ring) or generally anypacketized data stream Peripheral device 20 can be any data consumersystem that utilizes information, e.g., a computer, printer, set-topbox, or other peripheral. Interface 18 may be in the form of a first infirst out (FIFO) memory or data buffer.

The format of one embodiment of a network data packet processed bydevice 10 is shown in FIG. 2. Only fields of interest, i.e., pertinent,to the receiving node, i.e., peripheral device 20, are important and aretherefore processed. The pertinent information is the minimum amount ofinformation needed to correctly implement the protocol. That is, thepertinent information is what is mandatory for a minimal implementationof the protocol. Bytes of interest, i.e., pertinent data, include thepayload data as well as header data that might identify the packet type,the intended receiver, sequencing information, and so forth. Suchpertinent fields include a sequence number field, which indicates theorder the data is in, a destination address (DA) and a source address(SA). Thus, information pertinent to the receiving node includesselected bytes within the data packets.

Other packet bytes not of interest to peripheral device 20, such asdiagnostic information, are treated as “don't care” information and areignored. Such non-pertinent fields include a checksum field, a priorityfield, start-of-packet delimiter (SOP) and end-of-packet delimiter(EOP).

Hardware filter 12 receives packetized data from network 16 and includesan offset counter 24 (FIG. 3), pattern generator 26, mask generator 28,multiplexer 30. maskable comparator 32, event decoder 34 and signalinglogic 36. All of these blocks are easily constructed by someone skilledin the art. The incoming packet data stream is assumed to be a stream ofwords (of fixed bit-width W) with start-of-packet (SOP) andend-of-packet (EOP) indicators that are synchronous to a common receiveclock. This is a common interface for media access control (MAC)hardware. The outputs of hardware filter 12 include an extracted payloaddata stream (payload word), protocol parameters, and indicators of asuccessfully accepted packet.

Offset counter 24 includes an N-bit counter that tracks the number ofwords from the start of a packet. Counter 24 is wide enough toaccommodate a maximum-length packet for the particular network medium.Offset counter 24 is cleared upon receiving the SOP indication andincrements by one with each packet word received.

Packet generator 26 is a special case of an N to M decoder. Given aninput value of width N, pattern generator 26 outputs a predeterminedcorresponding word of width M. The decoder is designed so that, giventhe input packet offset, the output of the decoder is the correspondingword required for packet acceptance.

Mask generator 28 is similar to pattern generator 26. Mask generator 28decodes offset counter 24 and produces a bit-mask. The mask indicateswhich bits within the word are compared. An additional set of outputs isrouted to multiplexer 30. These outputs determine whether multiplexer 30should pass the output of pattern generator 26 or one of the externalcomparison values to comparator 32. The external comparison values arespecific to the receiving node (peripheral device 20), such as itsnetwork address, or are states within the protocol. For protocols whereit is only necessary to examine entire words, only the multiplexercontrol outputs are necessary.

Maskable comparator 32 indicates whether the bits in the received packetwork unmasked by mask generator 28 are equal to the corresponding bitsin the output of multiplexer 30. A logical “0” on the output ofcomparator 32 indicates that all unmasked bits match. If the word is adon't care (all bits masked), the output is also a “0”.

Event decoder 34 indicates when header information needs to be storedinto memory elements (flip-flops). This allows protocol state machine 22to use the information when updating its state or transmitting aresponse. Event decoder 34 is also used to generate a Payload Start (PS)signal to indicate where in the packet payload data should be extracted.

Signaling logic 36 generates indicators to outside entities. A signal,RELEVANT (FIG. 4), is generated with an R-S flip-flop 38. Thestart-of-packet (SOP) signal is connected to the “S” input of flip-flop38, with the “R” input connected to the output of maskable comparator32. Thus, the RELEVANT signal goes high at the start of a packet andremains high until comparator 32 finds a problem with the packet. TheRELEVANT signal is logically AND'ed with the end-of-packet (EOP) signalto create a PACKET GOOD signal for use outside filter 12. Another R-Sflip-flop 40 generates a PAYLOAD VALID signal. The PAYLOAD START signalis AND'ed with the RELEVANT signal, and the result is connected to the“S” input of flip-flop 40, The end-of-packet (EOP) signal is connectedto the “R” input of flip-flop 40. This creates a signal that is activefor the entire payload of packets whose header matches the acceptablecriteria.

In operation, when the start-of-packet (SOP) indicator is given, offsetcounter 24 is cleared and the RELEVANT signal is set active. Packet datastarts entering filter 12, with counter 24 incrementing with each word.At each word, mask generator 28 determines whether any part of the wordis necessary for comparison. Mask generator 28 also determines whichvalue should be used for the comparison. i.e., the output of patterngenerator 26 or one of the external comparison values. The output ofpattern generator 26 is a “don't care” condition whenever a comparisonis not performed. Multiplexer 30 steers the appropriate compare word tocomparator 32, and comparator 32 indicates if a necessary match ismissing. If it is so indicated, the RELEVANT signal drops inactive andprocessing is ignored for the remainder of the packet, although theprocessing does continue. If the header is successfully processed, i.e.the PAYLOAD START signal is generated, then the PAYLOAD VALID signalactivates and the packet payload data is passed to peripheral device 20for consumption. This continues until the end-of-packet (EOP) signal isindicated, which causes the PAYLOAD VALID signal to deactivate and thePACKET GOOD signal to be pulsed.

Meanwhile, event decoder 34 extracts header data, e.g., extractedelements 41, by activating the enable inputs of storage flip-flopsattached to the data stream. When the PACKET GOOD signal is pulsed,protocol state machine 22 can determine if a response is necessary. Ifsuch a response is called for, the extracted header information is thenavailable to packet generator 14 as header input data for transmission.

Other embodiments of the hardware filter might be needed for difficultprotocols. The comparator could include more arithmetic logic unit(ALU)-like functions (less than, greater than, etc.) than merely the“equals” operation. Pattern generator 26, mask generator 28 and eventdecoder 34 could be replicated and connected in parallel to identifyvarious types of packets.

Multiple hardware filters 12 could be used in parallel to detectdifferent protocols, or might be cascaded serially to allow for thestripping of the individual protocol layers, as needed.

Packet generator 14 transmits packets to network 16. As shown in FIG. 5,packet generator 14 includes the same building blocks as those found inhardware filter 12. Packet generator 14 includes an offset counter 42, apattern generator 44, a multiplexer 46, an event decoder 48, and a maskgenerator 50.

Offset counter 42, pattern generator 44, event decoder 48, andmultiplexer 46 perform the same functions as offset counter 24, patterngenerator 26, event decoder 34, and multiplexer 30, respectively.Pattern generator 44 may or may not have the exact same patterns aspattern generator 26. Pattern generator 44 is protocol-dependent.

Mask generator 50 is only used to create the multiplexer steeringcontrols. The masks need not be generated since no comparisons areperformed on the transmit side of device 10 i.e., within packetgenerator 14

Packet generator 14 operates exactly as the logic used to create thecomparison word in filter hardware 12. When a packet is to be sent,offset counter 42 is cleared and pattern generator 44, mask generator 50and event decoder 48 decode the offset into a transmission word. Thisword is sent to media access controller 52 for transmission. When mediaaccess controller 52 requires the next word, offset counter 42 isincremented and the process continues until all words of a packet havebeen sent. Event decoder 48 creates the necessary framing signals SOPand EOP.

While this invention has been described as having a preferred design,the present invention can be further modified within the spirit andscope of this disclosure. This application is therefore intended tocover any variations, uses, or adaptations of the invention using itsgeneral principles. Further, this application is intended to cover suchdepartures from the present disclosure as come within known or customarypractice in the art to which this invention pertains and which fallwithin the limits of the appended claims.

1. A method of processing data packets, comprising: receiving, from asource address, a plurality of the data packets at a selected node;extracting only pertinent information from the data packets whileignoring non-pertinent information from the data packets, the pertinentinformation being pertinent to said selected node; and generating aplurality of response data packets directed to said source address basedon the pertinent information, wherein said extracting and generatingsteps are performed without use of a microprocessor.
 2. The method ofclaim 1, wherein said extracting and generating steps are performedwithout use of a storage memory.
 3. The method of claim 1, wherein saidselected node includes a peripheral device, the pertinent informationbeing pertinent to said peripheral device.
 4. (canceled)
 5. The methodof claim 1, comprising the further step of transmitting the responsedata packets to a packetized data network.
 6. The method of claim 1,wherein said receiving step includes receiving the data packets from apacketized data network.
 7. The method of claim 1, wherein saidpertinent information includes a packet payload.
 8. The method of claim7, comprising the further step of passing the packet payload to aperipheral device.
 9. The method of claim 1, wherein said extractingstep includes extracting header information.
 10. The method of claim 9,wherein said response data packets include the header information.
 11. Adata packet communication system, comprising: a peripheral device; and afilter device connected to said peripheral device, said filter devicebeing configured to receive a plurality of data packets from a sourceaddress and identify only pertinent information in said data packetswhile ignoring non-pertinent information from said data packets, saidpertinent information being pertinent to said peripheral device.
 12. Thesystem of claim 11, wherein said filter device is microprocessorless.13. The system of claim 12, wherein said filter device is memoryless.14. The system of claim 11, further comprising a packet generatorconnected to said peripheral device and said filter device, said packetgenerator being configured to generate a plurality of response datapackets directed to said source address based on said pertinentinformation.
 15. The system of claim 14, wherein said packet generatoris configured to transmit said response data packets.
 16. (canceled) 17.(canceled)
 18. (canceled)
 19. The system of claim 11, wherein saidfilter device is configured to receive the data packets from apacketized data network.
 20. The system of claim 11, further comprisingan interface interconnecting said peripheral device and said filterdevice.
 21. A data packet communication device, comprising: a filterdevice configured to receive a plurality of data packets from a sourceaddress and identify only pertinent information in said data packetswhile ignoring non-pertinent information from said data packets; and apacket generator configured to generate a plurality of response datapackets directed to said source address based on said pertinentinformation.
 22. The device of claim 21, wherein each of said filterdevice and said packet generator is microprocessorless.
 23. The deviceof claim 22, wherein each of said filter device and said packetgenerator is memoryless.
 24. The device of claim 21, wherein said packetgenerator is configured to transmit said response data packets.
 25. Thedevice of claim 24, wherein said packet generator is configured totransmit said response data packets to a packetized data network. 26.(canceled)
 27. (canceled)
 28. The device of claim 21, wherein saidfilter device is configured to receive the data packets from apacketized data network.
 29. The device of claim 21, wherein said packetgenerator comprises an N to M decoder.
 30. The device of claim 21,wherein said pertinent information comprises selected bytes within saiddata packets.
 31. A method of processing data packets, comprising:receiving a plurality of said data packets at a payload data consumer;extracting only pertinent information from said data packets whileignoring non-pertinent information from said data packets, saidpertinent information being pertinent to said payload data consumer,wherein said pertinent information includes payload data; and consumingsaid payload data at said payload data consumer.